export default function updateNodeElement(newEle, vDom, oldVDOM = {}) {
  const newProps = vDom.props || {};
  const oldProps = oldVDOM.props || {};
  Object.keys(newProps).forEach(propName => {
    const newPropsValue = newProps[propName];
    const oldPropsValue = oldProps[propName];


    if (newPropsValue !== oldPropsValue) {
      // 判断是不是事件的属性
      if (propName.slice(0, 2) === 'on') {
        // 获取事件名称
        const eventName = propName.toLowerCase().slice(2);

        //   为元素添加事件
        // console.log(eventName);
        newEle.addEventListener(eventName, newPropsValue);

        // 移除老节点的事件
        if (oldPropsValue) {
          // 移除事件方法
          newEle.removeEventListener(eventName, oldPropsValue);
        }
      } else if (propName === 'value' || propName === 'checked') {
        newEle[propName] = newPropsValue;
      } else if (propName !== 'children') {
        if (propName === 'className') {
          newEle.setAttribute('class', newPropsValue);
        } else {
          newEle.setAttribute(propName, newPropsValue);
        }
      }
    }


  })
//  判断删除的属性
  Object.keys(oldProps).forEach(propName => {
    const newPropsValue = newProps[propName];
    const oldPropsValue = oldProps[propName];
    // 老的属性里面有，但是新的没有，说明属性被删除
    if (!newPropsValue) {
      // 属性被删除
      if (propName.slice(0, 1) === 'on') {
        const eventName = propName.toLowerCase().slice(2);
        // 移除事件
        newEle.removeEventListener(eventName, oldPropsValue);
        // 忽略children属性
      } else if (propName !== 'children') {
        newEle.removeAttribute(propName);
      }
    }
  })
}
